/**
 * 格式化日期为相对时间（如：3分钟前、2小时前）
 * @param date 日期对象或日期字符串
 * @returns 格式化后的相对时间字符串
 */
export function formatRelativeTime(date: Date | string): string {
  try {
    const targetDate = typeof date === 'string' ? new Date(date) : date;
    const now = new Date();
    const diffInSeconds = Math.floor((now.getTime() - targetDate.getTime()) / 1000);

    if (diffInSeconds < 60) {
      return `${diffInSeconds}秒前`;
    } else if (diffInSeconds < 3600) {
      return `${Math.floor(diffInSeconds / 60)}分钟前`;
    } else if (diffInSeconds < 86400) {
      return `${Math.floor(diffInSeconds / 3600)}小时前`;
    } else if (diffInSeconds < 604800) {
      return `${Math.floor(diffInSeconds / 86400)}天前`;
    } else {
      return targetDate.toLocaleDateString('zh-CN', {
        year: 'numeric',
        month: 'short',
        day: 'numeric'
      });
    }
  } catch (error) {
    console.error('日期格式化错误:', error);
    return '未知时间';
  }
}

/**
 * 格式化日期为标准格式（如：2023-10-05 14:30）
 * @param date 日期对象或日期字符串
 * @returns 格式化后的标准日期字符串
 */
export function formatStandardDate(date: Date | string): string {
  try {
    const targetDate = typeof date === 'string' ? new Date(date) : date;
    return targetDate.toLocaleDateString('zh-CN', {
      year: 'numeric',
      month: '2-digit',
      day: '2-digit',
      hour: '2-digit',
      minute: '2-digit'
    }).replace(/\//g, '-');
  } catch (error) {
    console.error('日期格式化错误:', error);
    return '未知日期';
  }
}
